package com.woniu.liuzhougov.WorkPlan.service;

import com.woniu.liuzhougov.WorkPlan.dto.PlanDTO;
import com.woniu.liuzhougov.WorkPlan.pojo.Plan;

import java.util.List;

/**
 * @Description:
 * @Author: junzhao
 * @Date: 2019-04-19 16:09
 */
public interface PlanService {

    /**
     * @Description: 通过主键删除
     * @Author: JunZhao
     * @Date: 2019-04-19 16:15
     * @Param: [planId]
     * @Return: void
     */
    String deleteByPrimaryKey(Integer planId);

    /**
     * @Description: 选择性插入一条工作计划
     * @Author: JunZhao
     * @Date: 2019-04-19 16:17
     * @Param: [planDTO]
     * @Return: void
     */

    String insertSelective(Plan plan);

    /**
     * @Description: 通过主键查找一条工作记录
     * @Author: JunZhao
     * @Date: 2019-04-19 16:17
     * @Param: [planId]
     * @Return: com.woniu.liuzhougov.WorkPlan.pojo.Plan
     */
    PlanDTO selectByPrimaryKey(Integer planId);

    /**
     * @Description: 选择性通过主键更新一条工作记录
     * @Author: JunZhao
     * @Date: 2019-04-19 16:18
     * @Param: [plan]
     * @Return: void
     */
    String updateByPrimaryKeySelective(PlanDTO planDTO);

    /**
     * @Description: 通过主键更新一条工作记录
     * @Author: JunZhao
     * @Date: 2019-04-19 16:18
     * @Param: [plan]
     * @Return: void
     */
    String updateByPrimaryKey(Plan plan);

    /**
     * @Description: 分页查询
     * @Author: JunZhao
     * @Date: 2019-04-19 16:19
     * @Param: [planDTO, page, pageSize]
     * @Return: java.util.List<com.woniu.liuzhougov.WorkPlan.dto.PlanDTO>
     */
    List<PlanDTO> queryPlanByPage(PlanDTO planDTO, Integer page, Integer pageSize);

    /**
     * @Description: 通过计划主键 以及发布者id查询工作计划详情
     * @Author: JunZhao
     * @Date: 2019-04-28 15:08
     * @Param: [plan]
     * @Return: com.woniu.liuzhougov.WorkPlan.dto.PlanDTO
     */
    PlanDTO selectByPrimaryKeyAndUserId(Integer planId);

    /**
     * 发布工作计划
     * @param planDTO
     * @return
     */
    String planRelease(PlanDTO planDTO);

}
